<!DOCTYPE html>
<html>

<head lang="en">
	<meta charset="UTF-8">
	<title>注册</title>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport"
		  content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<meta name="format-detection" content="telephone=no">
	<meta name="renderer" content="webkit">
	<meta http-equiv="Cache-Control" content="no-siteapp"/>

	<link rel="stylesheet" href="./AmazeUI-2.4.2/assets/css/amazeui.min.css"/>
	<link href="./css/dlstyle.css" rel="stylesheet" type="text/css">
	<script src="./AmazeUI-2.4.2/assets/js/jquery.min.js"></script>
	<script src="./AmazeUI-2.4.2/assets/js/amazeui.min.js"></script>

	<!-- 引入vue -->
	<script src="js/plugins/vue/dist/vue.js"></script>
	<!-- 引入axios -->
	<script src="js/plugins/axios/dist/axios.js"></script>
	<!-- 引入公共common -->
	<script src="js/common.js"></script>
</head>

<body>
<div id="app">

	<div class="login-boxtitle">
		<a href="home/demo.html"><img alt="" src="./images/logobig.png"/></a>
	</div>

	<div class="res-banner">
		<div class="res-main">
			<div class="login-banner-bg"><span></span><img src="./images/big.jpg"/></div>
			<div class="login-box">

				<div class="am-tabs" id="doc-my-tabs">
					<ul class="am-tabs-nav am-nav am-nav-tabs am-nav-justify">
						<li class="am-active"><a href="">邮箱注册</a></li>
						<li><a href="">手机号注册</a></li>
					</ul>

					<div class="am-tabs-bd">
						<div class="am-tab-panel am-active">
							<form method="post">

								<div class="user-email">
									<label for="email"><i class="am-icon-envelope-o"></i></label>
									<input type="email" v-model="emailForm.email" name="" id="email" placeholder="请输入邮箱账号">
								</div>
								<div class="user-phone">
									<label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
									<!-- 使用双向绑定将用户输入的图形验证码绑定到model对象的图形验证码字段 -->
									<input type="text" name="" style="width: 180px;"
										   v-model="emailForm.imageCodeValue"
										   id="imageCode"
										   placeholder="请输入图片验证码">
									<!--<input type="text" name="" style="width: 180px;" id="imageCode" placeholder="请输入图片验证码">-->

									<img id="captcha-image-temp" @click="getImageCode" :src="imageCode"
										 class="captcha-image-temp" alt="点击换图" title="点击换图"
										 style="vertical-align: middle; cursor: pointer;">
								</div>
								<div class="user-pass">
									<label for="password"><i class="am-icon-lock"></i></label>
									<input type="password" v-model="emailForm.password" name="" id="password" placeholder="设置密码">
								</div>
								<div class="user-pass">
									<label for="passwordRepeat"><i class="am-icon-lock"></i></label>
									<input type="password" v-model="emailForm.passwordRepeat" name="" id="passwordRepeat" placeholder="确认密码">
								</div>

							</form>

							<div class="login-links">
								<label for="reader-me">
									<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
								</label>
							</div>
							<div class="am-cf">
								<input type="submit" @click="emailRegister" name="" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
							</div>

						</div>

						<div class="am-tab-panel" id="phoneForm">
							<form method="post">
								<div class="user-phone">
									<label for="phone"><i class="am-icon-mobile-phone am-icon-md"></i></label>
									<!-- 使用双向绑定将用户输入的手机验证码绑定到model对象的手机验证码字段 -->
									<input type="tel" name="" v-model="phoneForm.phone" id="phone" placeholder="请输入手机号">
								</div>
								<div class="user-phone">
									<label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
									<!-- 使用双向绑定将用户输入的图形验证码绑定到model对象的图形验证码字段 -->
									<input type="text" name="" style="width: 180px;"
										   v-model="phoneForm.imageCodeValue"
										   id="imageCode"
										   placeholder="请输入图片验证码">
									<!--<input type="text" name="" style="width: 180px;" id="imageCode" placeholder="请输入图片验证码">-->

									<img id="captcha-image-temp" @click="getImageCode" :src="imageCode"
										 class="captcha-image-temp" alt="点击换图" title="点击换图"
										 style="vertical-align: middle; cursor: pointer;">
								</div>
								<div class="verification">
									<label for="code"><i class="am-icon-code-fork"></i></label>
									<input type="tel" v-model="phoneForm.smsCode" name="" id="code" placeholder="请输入验证码">
									<a class="btn" href="javascript:void(0);" @click="sendMobileCode"
									   id="sendMobileCode">
										<span id="dyMobileButton">获取</span></a>
								</div>
								<div class="user-pass">
									<label for="password"><i class="am-icon-lock"></i></label>
									<input type="password" v-model="phoneForm.password" name="" id="password" placeholder="设置密码">
								</div>
								<div class="user-pass">
									<label for="passwordRepeat"><i class="am-icon-lock"></i></label>
									<input type="password" v-model="phoneForm.passwordRepeat" name="" id="passwordRepeat" placeholder="确认密码">
								</div>
							</form>
							<div class="login-links">
								<label for="reader-me">
									<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
								</label>
							</div>
							<div class="am-cf">
								<input type="submit" @click="phoneRegister" name="" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
							</div>

							<hr>
						</div>

					</div>
				</div>

			</div>
		</div>

		<div class="footer ">
			<div class="footer-hd ">
				<p>
					<a href="# ">恒望科技</a>
					<b>|</b>
					<a href="# ">商城首页</a>
					<b>|</b>
					<a href="# ">支付宝</a>
					<b>|</b>
					<a href="# ">物流</a>
				</p>
			</div>
			<div class="footer-bd ">
				<p>
					<a href="# ">关于恒望</a>
					<a href="# ">合作伙伴</a>
					<a href="# ">联系我们</a>
					<a href="# ">网站地图</a>
					<em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank"
																	   title="模板之家">模板之家</a>
						- Collect from <a href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
				</p>
			</div>
		</div>
	</div>
</div>
</body>

<script>
	$(function () {
		$('#doc-my-tabs').tabs();
	})
</script>

<script type="application/javascript">
	new Vue({
		el: "#app",
		data: {
			// src属性展示Base64所需要的前缀
			imageCodePrefix: "data:image/jpeg;base64,",
			// 图形验证码Base64字符串
			imageCode: "",
			phoneForm:{
				phone:'',
				imageCodeValue:'',
				imageCodeKey: '',
				smsCode: '',
				password:'',
				passwordRepeat:'',
				type: "register"
			},
			emailForm:{
				imageCodeValue:'',
				imageCodeKey: '',
				email:'',
				password:'',
				passwordRepeat:''
			}
		},
		methods: {
			// 获取手机验证码 根据获取按钮的单击事件名称创建函数
			sendMobileCode(event){
				// 1.判断手机号不为空
				if(!this.phoneForm.phone){
					alert("手机号不能为空");
					return;
				}
				// 2.判断图片验证码不为空
				if(!this.phoneForm.imageCodeValue){
					alert("图片验证码不能为空");
					return;
				}
				// 3.获取按钮，禁用按钮
				var sendBtn = $(event.target);
				sendBtn.attr("disabled",true);

				// 4.给图形验证码RedisKey赋值
				this.phoneForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");

				//5.发送ajax请求
				this.$http.post("/verifyCode/smsCode",this.phoneForm).then(res=>{
					var ajaxResult = res.data;
					if(ajaxResult.success){
						alert("手机验证码已经发送到您的手机，请在3分钟内使用");
						//5.1.发送成：倒计时
						var time = 60;
						var interval = window.setInterval( function () {
							//每一条倒计时减一
							time = time - 1 ;

							//把倒计时时间搞到按钮上
							sendBtn.html(time+"秒后重发");

							//5.2.倒计时完成恢复按钮
							if(time <= 0){
								sendBtn.html("重新发送");
								sendBtn.attr("disabled",false);
								//清除定时器
								window.clearInterval(interval);
							}
						},1000);
					}else{
						//5.3.发送失败：提示，恢复按钮
						sendBtn.attr("disabled",false);
						alert("发送失败:"+ajaxResult.msg);
					}
				})
			},
			// 手机注册
			phoneRegister() {
				this.$http.post("/verifyCode/phoneRegister",this.phoneForm).then(res=>{
					var ajaxResult = res.data;
					if(ajaxResult.success){
						alert("注册成功！");
						location.href="./index.html"
					}else{
						//5.3.发送失败：提示，恢复按钮
						alert("发送失败:"+ajaxResult.msg);
					}
				})
			},
			// 邮箱注册
			emailRegister() {
				// 1.判断手机号不为空
				if(!this.emailForm.email){
					alert("手机号不能为空");
					return;
				}
				// 2.判断图片验证码不为空
				if(!this.emailForm.imageCodeValue){
					alert("图片验证码不能为空");
					return;
				}
				// 4.给图形验证码RedisKey赋值
				this.emailForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");

				this.$http.post("/verifyCode/emailRegister",this.emailForm).then(res=>{
					var ajaxResult = res.data;
					if(ajaxResult.success){
						alert("注册成功！");
						location.href="./index.html"
					}else{
						//5.3.发送失败：提示，恢复按钮
						alert("发送失败:"+ajaxResult.msg);
					}
				})
			},
			// 1.生成UUID的方法
			createUuid() {
				var s = [];
				var hexDigits = "0123456789abcdefghi";
				for (var i = 0; i < 36; i++) {
					s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
				}
				s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
				s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
				s[8] = s[13] = s[18] = s[23] = "-";

				var uuid = s.join("");
				return uuid;
			},
			// 2.发起Axios请求获取图形验证码的方法
			getImageCode() {
				// 2.1.从localStorage中获取UUID
				let imageCodeKey = localStorage.getItem("registerImageCodeKey");
				// 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
				if (!imageCodeKey || imageCodeKey === '') {
					imageCodeKey = this.createUuid();
					localStorage.setItem("registerImageCodeKey", imageCodeKey);
				}
				// 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
				this.$http.get("/verifyCode/image/" + imageCodeKey).then(res => {
					// 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
					this.imageCode = this.imageCodePrefix + res.data.resultObj;
				})
			},
		},
		mounted() {
			this.getImageCode();
		}
	})
</script>

</html>